/*
 * Ganesa Copyright (C) 2008 Wim Crols <twimpiex@gnx.be>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License Version 3
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

package be.gnx.ganesa.application.model.feature;

import java.util.Collection;
import java.util.LinkedHashMap;

import be.gnx.ganesa.application.model.Feature;
import be.gnx.ganesa.application.model.feature.Node;

public abstract class Arc extends Feature {

  protected LinkedHashMap<Object, Node> vertices = new LinkedHashMap<Object, Node>();

  public Collection<Node> getVertices() {
    return vertices.values();
  }

  @Override
  public void deleteFeature(Feature feature) {
    if ((feature instanceof Node) && (vertices.containsKey(feature.getIdentifier()))) {
      vertices.remove(feature.getIdentifier());
    }
  }

  @Override
  public byte[] asBinary() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public String asText() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public Feature buffer(double distance) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean contains(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature convexHull() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean crosses(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature difference(Feature feature) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean disjoint(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public double distance(Feature feature) {
    // TODO Auto-generated method stub
    return Double.NaN;
  }

  @Override
  public boolean equals(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature getBoundary() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public int getCoordinateDimension() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public int getDimension() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public Feature getEnvelope() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public String getFeautureType() {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public int getSpatialDimension() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public int getSRID() {
    // TODO Auto-generated method stub
    return 0;
  }

  @Override
  public Feature intersection(Feature feature) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean intersects(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public boolean is3D() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public boolean isEmpty() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public boolean isMeasured() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public boolean isSimple() {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature locateAlong(double value) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public Feature locateBetween(double start, double end) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean overlaps(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public boolean relate(Feature feature, String matrix) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature symDifference(Feature feature) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean touches(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

  @Override
  public Feature union(Feature feature) {
    // TODO Auto-generated method stub
    return null;
  }

  @Override
  public boolean within(Feature feature) {
    // TODO Auto-generated method stub
    return false;
  }

}
